import { HttpClient } from './http.client.utils';

export class WxUtils {
  /**
   * 根据参数获取微信用户的OpenID
   *
   * 本函数通过调用微信API，使用小程序登录凭证（js_code）等信息，兑换用户的OpenID和会话密钥
   * 主要用于微信小程序等场景下，实现用户身份验证和数据安全保障
   *
   * @param params 包含小程序登录凭证、授权类型、应用ID和应用密钥的对象
   * @returns 返回一个包含OpenID、会话密钥、UnionID、错误码和错误信息的对象
   */
  static async getOpenIdByParams(params: {
    js_code: string;
    grant_type: string;
    appid: string;
    secret: string;
  }) {
    const result: {
      openid: string;
      session_key: string;
      unionid: string;
      errcode: number;
      errmsg: string;
    } = await HttpClient.get({
      url: 'https://api.weixin.qq.com/sns/jscode2session',
      params,
    });
    return result;
  }
}
